package raytracer.main;

import java.util.ArrayList;

import raytracer.math.Vector3d;

import raytracer.misc.Camera;
import raytracer.objects.LightSource;
import raytracer.objects.ThreeDObject;

public class Scene {
	private Camera camera;
	private ArrayList<ThreeDObject> objectList;
	private ArrayList<LightSource> lightList;
	
	public Scene(Camera c) {
		this.setCamera(c);
		objectList=new ArrayList<ThreeDObject>();
		lightList=new ArrayList<LightSource>();
	}
	
	public void setCamera(Camera c) {
		this.camera=c;
	}
	
	public void setCamera(Vector3d campos,Vector3d upvector,Vector3d vpc,double hfov, double vfov) {
		this.camera=new Camera(
				campos,
				upvector,
				vpc,
				hfov,
				vfov
		);
	}
	
	public Camera getCamera() {
		return this.camera;
	}
	
	public void addObject(ThreeDObject o) {
		this.objectList.add(o);
	}
	
	public void addLight(LightSource l) {
		this.lightList.add(l);
	}
	
	public ArrayList<ThreeDObject> getObjectList() {
		return objectList;
	}
	
	public ArrayList<LightSource> getLightList() {
		return lightList;
	}
}
